home *** CD-ROM | disk | FTP | other *** search
-
- #include <e_gem.h>
-
- char *help[] =
- {
- "",
- " Bedienung der Demonstrations-Dialoge: ",
- "=======================================",
- " (weitere Möglichkeiten s. Anleitung) ",
- "",
- " - fliegende Dialoge springen zur Mausposition bei Mausklick",
- " außerhalb des Dialogs (u.a. system-modale Alertboxen)",
- " - Rechtsklick auf ein Dialog-Objekt simuliert Doppelklick",
- " - Fensterdialoge auch im Hintergrund bedienbar",
- " - Tastaturbedienung (Hotkeys) der Dialoge, wobei in Dialogen mit",
- " Eingabefeldern zusätzlich die Alternate-Taste gedrückt werden muß",
- " (Doppelklick-Simulation durch zusätzlich gedrückte Shift-Taste)",
- " - Tastendrücke gehen an den Dialog unter dem Mauszeiger",
- "",
- " - Ikonififizierung von Fenstern bei vorhandenem ICFS-Server:",
- " (analog falls weder MTOS- noch ICFS-Ikonifizierung vorhanden)",
- " - [Alternate]-Closer - ein einzelnes Fenster verkleinern",
- " (Hotkey: Ctrl-Space oder Ctrl-'*')",
- " - [Shift]-Closer - alle Fenster einzeln verkleinern",
- " (Hotkey: Ctrl-Shift-Space oder Ctrl-Shift-'*')",
- " - Mausklick in ein verkleinertes Fenster öffnet es wieder an der",
- " alten Position",
- "",
- " - erweiterte Möglichkeiten in Eingabe-Feldern:",
- " - Text kann per ACC_TEXT-Nachricht eingegeben werden",
- " - exakte Cursorpositionierung per Maus",
- " - Mauscursor wird über Eingabefeldern zum Textcursor",
- " - Enthält die Eingabemaske eines der Zeichen \',.;:\\/\' und wird",
- " dieses Zeichen eingegeben, wenn der Cursor VOR diesem Zeichen",
- " steht, so wird das Eingabefeld bis zu diesem Zeichen mit",
- " Leerzeichen gefüllt und der Cursor hinter dieses Zeichen",
- " gesetzt (Beispiel: Punkt '.' in Dateimasken)",
- " - erstes/letzes Eingabefeld (Home/Shift-Home, Shift-Up/Down)",
- " - Wort vor/zurück (Ctrl-Left/Right)",
- " - Anfang/Ende des Eingabesfeldes (Shift-Left/Right)",
- " - vorheriges Eingabesfeld (Up,Shift-Tab/Enter/Return)",
- " - nächstes Eingabefeld (Down/Tab/Enter)",
- " - Cursor ein Zeichen nach links/rechts (Left/Right)",
- " - Eingabefeld löschen (Esc)",
- " - alle Eingabefelder löschen (Shift-Esc)",
- " - Eingabefeld ab Cursor löschen (Shift-Del)",
- " - Eingabefeld bis Cursor löschen (Shift-Backspace)",
- " - Eingabebox für alle Ascii-Zeichen (Shift-Insert)",
- " - Sonderzeicheneingabe durch Eingabe des dezimalen ASCII-Wertes",
- " bei gedrückter Alternate-Taste auf dem Ziffernblock",
- " => sofern der ASCII-Wert nicht eindeutig ist (ASCII<=25), müssen",
- " alle drei Stellen (evtl. mit führenden Nullen) eingegeben",
- " werden",
- " - Undo (Undo bzw. Shift-Undo, sofern Undo-Button vorhanden)",
- " - History-Funktion der letzten eingegebenen Texte (Ctrl-Up/Down)",
- " => mit Shift-Taste: Text in History suchen",
- " - Clipboardunterstützung:",
- " => mit Shift-Taste: Text an Clipboard/Eingabe-Feld anhängen",
- " -> Ctrl-X: Text ausschneiden und in Clipboard ablegen",
- " -> Ctrl-C: Text in Clipboard ablegen",
- " -> Ctrl-V: Text in Eingabefeld einfügen",
- " - Einfüge-/Überschreibenmodus (Insert -> Strich-/Block-Cursor)",
- " - Return selektiert beim letzten Eingabefeld das DEFAULT-Objekt",
- "",
- " - Popup-Menüs:",
- " - Hotkeys (unterstrichener Buchstabe, optional mit gedrückter",
- " Alternate-Taste)",
- " - vorheriger Eintrag (Cursor links/hoch)",
- " - nächster Eintrag (Cursor rechts/runter)",
- " - erster Eintrag (Home)",
- " - letzter Eintrag (Shift-Home)",
- " - Abbruch (Escape/Undo)",
- " - aktuellen Eintrag auswählen (Space,Return)",
- ""
- };
-
- int old_line,first_line,scroll_help;
- int line_help_h,view_help_lines;
- int help_lines = (int) sizeof(help)>>2;
-
- /* Zeichnen des Hilfetext-Ausschnitts */
-
- int cdecl draw_help(PARMBLK *pb)
- {
- GRECT work = *(GRECT *) &pb->pb_x;
- reg char **ptr;
- reg int x = pb->pb_x,y = pb->pb_y,i,start_line = first_line,lines = abs(first_line - old_line);
- int pxy[4];
-
- v_set_mode(MD_REPLACE);
- v_set_text(small_font_id,small_font,BLACK,NULL);
- rc_intersect((GRECT *) &pb->pb_xc,&work);
-
- if (scroll_help)
- {
- i = lines*line_help_h;
- if (first_line<old_line)
- i = -i;
-
- if (!rc_sc_scroll(&work,0,i,&work))
- return (0);
- else
- {
- rc_grect_to_array(&work,pxy);
- restore_clipping(pxy);
- }
- }
-
- rc_sc_clear(&work);
-
- start_line += (work.g_y - y)/line_help_h;
- y += (start_line - first_line)*line_help_h;
-
- i = min((work.g_y - y + work.g_h + line_help_h - 1)/line_help_h,help_lines-start_line);
- for (ptr=&help[start_line];--i>=0;y+=line_help_h)
- v_gtext(x_handle,x,y,*ptr++);
-
- return(0);
- }
-
- USERBLK helpblk = {draw_help,0};
-